#ifndef __CDROM_H__
#define __CDROM_H__

#pragma once

using namespace System;

namespace SharpSDL
{	
	namespace ManagedSDL
	{
		public ref class CDROMDrive
		{
		public:
			enum class CDROMInitStatus
			{
				Opened = 0,
				Closed = 1
			};
			enum class CDROMStatus
			{
				Error = -1,
				Trayempty = 0,
				Stopped = 1,
				Playing = 2,
				Paused = 3,
			};
			static int CDROMDriveNum(void);
			static System::String ^CDROMDriveName(int);
			void Open(int);
			void Close(void);
			CDROMStatus GetCDROMStatus(void);
			bool CDInDrive(void);
			void Eject(void);
			void PlayTracks(int, int, int, int);
			void Play(int, int);
			void Pause(void);
			void Resume(void);
			void Stop(void);
			~CDROMDrive(void);
			CDROMDrive(int);
		private:
			SDL_CD *CurrentCDROM;
			CDROMInitStatus Status;
		};
	}
}

#endif